// 在此进行设置请求和响应拦截
import axios from 'axios'
import Vue from 'vue'
import router from '../router'
axios.defaults.baseURL = 'http://localhost:2008/api'
// 超时时间
axios.defaults.timeout =10000
// 请求拦截
axios.interceptors.request.use(res => {
  let token=sessionStorage.getItem('token');
  let isUpload=res.url.indexOf("https://api.uomg.com/api");
   if (token && isUpload==-1) {
    res.headers.Authorization='Bearer '+token;
  }
  // if(res.headers['Content-Type']=='multipart/form-data'){
  //   res.data = res.data;  
  // }
  return res;
}, err => {
  return Promise.reject(err)
})

// 响应拦截
axios.interceptors.response.use(res => {
  	// 响应成功
  	// 因为axios默认返回以下参数
	// {
	//   data: {}, 				由服务器提供的响应
	//   status: 200,   		来自服务器响应的 HTTP 状态码
	//   statusText: 'OK', 		来自服务器响应的 HTTP 状态信息
	//   headers: {}			服务器响应的头			
	//   config: {}				是为请求提供的配置信息
	// }
	// 一般情况只需返回 data
  	return res.data
}, err => {
  // 响应失败
  let {status,data:{message}}=err.response;
  if(err.response.status===401){
    Vue.prototype.$message({
      type:'error',
      message:message
    })
    sessionStorage.clear();
    router.push('/');
  }
  if(err.response.status===403){
    Vue.prototype.$message({
      type:'error',
      message:"你没有操作权限"
    })
  }
  return Promise.reject(err);
})

export default axios